#include "Connection.h"

#include "../Utils/DebugLog.h"





//====================================================================
//
//
//====================================================================
Connection::Connection(Socket* socket)
:	m_socket(socket),
	m_isLogIn(false),
	m_id("")
{
	
}

//====================================================================
//
//
//====================================================================
Connection::~Connection()
{
	m_pendingMessages.clear();

	if(m_socket != NULL)
	{
		delete m_socket;
		m_socket = NULL;
	}
}

//====================================================================
//
//
//====================================================================
Socket* Connection::getSocket()
{
	return m_socket;
}

//====================================================================
//
//
//====================================================================
void Connection::setId(std::string id)
{
	m_id = id;
}

//====================================================================
//
//
//====================================================================
std::string Connection::getId()
{
	return m_id;
}

//====================================================================
//
//
//====================================================================
void Connection::addPendingMessage(Message *msg)
{
	m_pendingMessages.push_back(msg);
}

//====================================================================
//
//
//====================================================================
void Connection::sendFirstPendingMessage()
{
	if(m_pendingMessages.size() > 0)
	{
		m_socket->sendByteArray(m_pendingMessages[0]->getData());
		if(m_pendingMessages[0]->isNeedCloseConnection)
		{
			getSocket()->Disconnect();
		}
		m_pendingMessages.erase(m_pendingMessages.begin());
	}
}

